package action.RDD基本转换操作1

import org.apache.spark.{SparkConf, SparkContext}


/**
  * scala spark map的使用
  * @author wdmcode@aliyun.com
  * @version 1.0.0
  * @date 2018/11/7
  */
object SparkMap {
  /**
    * map
    *
    * 将一个RDD中的每个数据项，通过map中的函数映射变为一个新的元素。
    *
    * 输入分区与输出分区一对一，即：有多少个输入分区，就有多少个输出分区。
    */

  def main(args: Array[String]): Unit = {
    val conf = new SparkConf()
    conf.setMaster("local[2]")
    conf.setAppName("map")

    val spark = new SparkContext(conf);


    // 获取resource下的文件
    val filePath = SparkMap.getClass.getResource("/") + "hello.txt"

    val data = spark.textFile(filePath)
    /**
      * \\s表示   空格,回车,换行等空白符,
      * +号表示   一个或多个的意思
      */
    val collect = data.map(line => line.split("\\s+"))

    collect.foreach(s=>s.foreach(i=> println(i)))

    // res0: Array[Array[String]] = Array(Array(hello, world), Array(hello, spark), Array(hello, hive))

    spark.stop()
  }
}
